#ifndef _HCC_ERROR_CODE_DRV_PER_AUDIO_H_
#define _HCC_ERROR_CODE_DRV_PER_AUDIO_H_

#include "ofc_types.h"
#include "hcc_error_code.h"
#include "hcc_error_code_drv.h"

#ifdef __cplusplus
extern "C" {
#endif

// 不含行号的错误码生成
#define HCC_MAKE_DRV_PER_AUDIO_ERROR(error_code) (int)HCC_MAKE_DRIVER_ERROR(kHccDrvPerAudio, error_code, HCC_ERROR_LEVEL_ERROR)
// 含行号的错误码生成
#define HCC_MAKE_DRV_PER_AUDIO_ERROR_LINE(error_code) (int)HCC_ERROR(HCC_MAKE_DRIVER_ERROR(kHccDrvPerAudio, error_code, HCC_ERROR_LEVEL_ERROR))


/**
 * 外设Audio驱动:外设Audio驱动
 */
enum THccDrvPerAudioTag
{
	kHccDrvPerAudioSuccess	=	HCC_ERROR_SUCCESS,			///< 成功,没有错误
	kHccDrvPerAudioComm	=	HCC_MAKE_DRV_PER_AUDIO_ERROR(0),			///<通讯错误, 如链路问题
	kHccDrvPerAudioParam	=	HCC_MAKE_DRV_PER_AUDIO_ERROR(1),			///<参数错误
	kHccDrvPerAudioCallBack	=	HCC_MAKE_DRV_PER_AUDIO_ERROR(2),			///<回调函数未设置
	kHccDrvPerAudioExist	=	HCC_MAKE_DRV_PER_AUDIO_ERROR(3),			///<芯片不存在
	kHccDrvPerAudioOpened	=	HCC_MAKE_DRV_PER_AUDIO_ERROR(4),			///<设备已打开
	kHccDrvPerAudioClosed	=	HCC_MAKE_DRV_PER_AUDIO_ERROR(5),			///<设备已关闭
	kHccDrvPerAudioTimeout	=	HCC_MAKE_DRV_PER_AUDIO_ERROR(6),			///<操作超时
	kHccDrvPerAudioFail	=	HCC_MAKE_DRV_PER_AUDIO_ERROR(7),			///<操作失败, 如返回结果有误
	kHccDrvPerAudioOutOfRange	=	HCC_MAKE_DRV_PER_AUDIO_ERROR(8),			///<参数超出范围
	kHccDrvPerAudioOrder	=	HCC_MAKE_DRV_PER_AUDIO_ERROR(9),			///<调用顺序出错
	kHccDrvPerAudioBusy	=	HCC_MAKE_DRV_PER_AUDIO_ERROR(10),			///<设备处于忙
	kHccDrvPerAudioMode	=	HCC_MAKE_DRV_PER_AUDIO_ERROR(11),			///<模式错误
};
typedef enum THccDrvPerAudioTag THccDrvPerAudio;


typedef Int32 THccDrvPerAudioLine;
#define kHccDrvPerAudioSuccessLine	HCC_ERROR_SUCCESS	///< 成功,没有错误
#define kHccDrvPerAudioCommLine	HCC_MAKE_DRV_PER_AUDIO_ERROR_LINE(0)	///<通讯错误, 如链路问题
#define kHccDrvPerAudioParamLine	HCC_MAKE_DRV_PER_AUDIO_ERROR_LINE(1)	///<参数错误
#define kHccDrvPerAudioCallBackLine	HCC_MAKE_DRV_PER_AUDIO_ERROR_LINE(2)	///<回调函数未设置
#define kHccDrvPerAudioExistLine	HCC_MAKE_DRV_PER_AUDIO_ERROR_LINE(3)	///<芯片不存在
#define kHccDrvPerAudioOpenedLine	HCC_MAKE_DRV_PER_AUDIO_ERROR_LINE(4)	///<设备已打开
#define kHccDrvPerAudioClosedLine	HCC_MAKE_DRV_PER_AUDIO_ERROR_LINE(5)	///<设备已关闭
#define kHccDrvPerAudioTimeoutLine	HCC_MAKE_DRV_PER_AUDIO_ERROR_LINE(6)	///<操作超时
#define kHccDrvPerAudioFailLine	HCC_MAKE_DRV_PER_AUDIO_ERROR_LINE(7)	///<操作失败, 如返回结果有误
#define kHccDrvPerAudioOutOfRangeLine	HCC_MAKE_DRV_PER_AUDIO_ERROR_LINE(8)	///<参数超出范围
#define kHccDrvPerAudioOrderLine	HCC_MAKE_DRV_PER_AUDIO_ERROR_LINE(9)	///<调用顺序出错
#define kHccDrvPerAudioBusyLine	HCC_MAKE_DRV_PER_AUDIO_ERROR_LINE(10)	///<设备处于忙
#define kHccDrvPerAudioModeLine	HCC_MAKE_DRV_PER_AUDIO_ERROR_LINE(11)	///<模式错误

//旧版本适配补丁
typedef THccDrvPerAudio TPerAudioErrorCode;

#define kPerAudioErrorCodeSuccess kHccDrvPerAudioSuccess
#define kPerAudioErrorCodeComm kHccDrvPerAudioComm
#define kPerAudioErrorCodeParam kHccDrvPerAudioParam
#define kPerAudioErrorCodeCallBack kHccDrvPerAudioCallBack
#define kPerAudioErrorCodeExist kHccDrvPerAudioExist
#define kPerAudioErrorCodeOpened kHccDrvPerAudioOpened
#define kPerAudioErrorCodeClosed kHccDrvPerAudioClosed
#define kPerAudioErrorCodeTimeout kHccDrvPerAudioTimeout
#define kPerAudioErrorCodeFail kHccDrvPerAudioFail
#define kPerAudioErrorCodeOutOfRange kHccDrvPerAudioOutOfRange
#define kPerAudioErrorCodeOrder kHccDrvPerAudioOrder
#define kPerAudioErrorCodeBusy kHccDrvPerAudioBusy
#define kPerAudioErrorCodeMode kHccDrvPerAudioMode

#ifdef __cplusplus
}  // extern "C"
#endif

#endif // _HCC_ERROR_CODE_DRV_PER_AUDIO_H_
/**
 * @
 */
